<template>
  <div class='container'>
    <el-dialog
      :title="showTitle"
      :visible="addDialog"
      width="42%"
      @close="btnCancel"
    >
    <el-form ref="addArticles" :model="addArticles" :rules="rules" label-width="100px">
     <el-form-item label="文章标题:" prop="title">
     <el-input size="small" placeholder="请输入文章标签" v-model="addArticles.title"/>
    </el-form-item>
    <el-form-item label="文章内容:" prop="articleBody">
      <quill-editor
                   v-model="addArticles.articleBody"
                  :options="editorOption"
                  style="height:220px; padding-bottom:50px"
                  />
    </el-form-item>
     <el-form-item label="视频地址:" prop="videoURL">
     <el-input size="small" placeholder="请输入视频地址" v-model="addArticles.videoURL" />
    </el-form-item>
    </el-form>
 <!-- 底部footer插槽 -->
      <el-row slot="footer" type="flex" justify="center">
        <el-col :span="6">
          <el-button  @click="btnCancel">取消</el-button>
          <el-button  type="primary" @click="onSubmit">确认</el-button>
        </el-col>
      </el-row>
    </el-dialog>
  </div>
</template>

<script>
// 导入富文本编辑组件
import { quillEditor } from 'vue-quill-editor'
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'

// 引入文章详情 更新角色 添加角色接口
import { detail, update, add } from '../../api/hmmm/articles'

export default {
  props: {
    addDialog: {
      type: Boolean,
      default: false
    }
  },
  components: {
    quillEditor
  },
  data () {
    return {
      // 富文本
      editorOption: {
        modules: {
          toolbar: [
            ['bold', 'italic', 'underline', 'strike'], // 加粗 斜体 下划线 删除线
            [{ list: 'ordered' }, { list: 'bullet' }], // 有序，无序列表
            ['blockquote'], // 引用
            ['code-block', 'image', 'link'] // 代码块 图片 链接
          ]
        }
      },
      addArticles: {
        title: '', // 标题
        articleBody: null, // 文章正文
        videoURL: null// 视频地址
      },
      rules: {
        title: [{ required: true, message: '标题不能为空', trigger: 'blur' }],
        articleBody: [{ required: true, message: '文章正文不能为空', trigger: 'blur' }]
      },
      id: null // 修改与新增的标识
    }
  },
  computed: {
    showTitle () {
      return this.id ? '修改文章' : '新增文章'
    }
  },
  methods: {
    // 编辑角色
    async editRole (id) {
      this.id = id
      // 1.调用接口，回填数据
      const { data } = await detail({ id })
      this.addArticles = data
    },
    // 保存
    async onSubmit () {
      try {
        // 1.校验表单
        await this.$refs.addArticles.validate()
        // 只有校验通过的情况下 才会执行await的下方内容
        // roleForm这个对象有id就是编辑 没有id就是新增
        // 2.发送请求(后台保存数据)
        if (this.id) {
          // 执行编辑(调用接口)
          await update(this.addArticles)
        } else {
          // 新增业务
          await add({ id: '0', ...this.addArticles })
        }
        // 3.更新视图
        this.$emit('update')
        // 4.关闭弹层
        this.btnCancel()
        // 5.提示成功
        this.$message.success('操作成功')
      } catch (error) {
        console.log(error)
      }
    },
    // 取消
    btnCancel () {
      // 1.重置roleForm数据
      this.addArticles = {
        title: '', // 标题
        articleBody: '', // 文章正文
        videoURL: null// 视频地址
      }
      this.id = null
      // 2.清空校验
      this.$refs.addArticles.resetFields()
      // 3.关闭弹层
      this.$emit('update:addDialog', false)
    }

  }
}
</script>

<style scoped lang='less'></style>
